// 定义验证方法对象，存放验证方法（返回布尔值）
const checkMethod = {
  // 邮箱
  isEmail: function (s) {
    return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
  },
  // 手机号码
  isMobile: function (s) {
    return /^1[0-9]{10}$/.test(s)
  },
  // 电话号码
  isPhone: function (s) {
    return /^[1][3,4,5,7,8][0-9]{9}$/.test(s)
  },
  // URL地址
  isURL: function (s) {
    return /^http[s]?:\/\/.*/.test(s)
  },
  // 为空
  isEmpty: function (s) {
    return /\S/.test(s)
  },
  // 位数大于6的字母、数字、下划线
  isMorethan: function (s) {
    return /^[0-9a-zA-z_]{6,}$/.test(s)
  }
}

// 验证处理
const check = function (value, methods) { // value: 要验证的值，methods: 要使用的验证方法
  let checkArr = methods
  let checkInfo = {} // 存放验证结果
  for (var i = 0; i < checkArr.length; i++) {
    if (checkArr[i] === 'isEmail') {
      checkInfo.isEmail = checkMethod.isEmail(value)
    }
    if (checkArr[i] === 'isMobile') {
      checkInfo.isMobile = checkMethod.isMobile(value)
    }
    if (checkArr[i] === 'isPhone') {
      checkInfo.isPhone = checkMethod.isPhone(value)
    }
    if (checkArr[i] === 'isURL') {
      checkInfo.isURL = checkMethod.isURL(value)
    }
    if (checkArr[i] === 'isEmpty') {
      checkInfo.isEmpty = checkMethod.isEmpty(value)
    }
    if (checkArr[i] === 'isMorethan') {
      checkInfo.isMorethan = checkMethod.isMorethan(value)
    }
  }
  return checkInfo
}

// 返出验证结果
export default check
